#ifndef INTENSITYPEDESTRIAN_H
#define INTENSITYPEDESTRIAN_H

#include <QWidget>
class QGroupBox;
class QVBoxLayout;
class QGridLayout;
class QLabel;
class QComboBox;

/*! \class IntensityPedestrian
    \brief Klasa - widget opcji natężenia pieszych

    Widget IntensityPedetrian jest umieszczony na prawym panelu bocznym przez klasę RSim.
    Umożliwia wprowadzenie wartości natężenia pieszych na kolejnych gałęziach (na których znajdują się pasy).
    Wartość natężenia wybierana jest za pomocą QComboBoxów ( \link IntensityPedestrian::_intensityComboBoxList _intensityComboBoxList \endlink ).
    Zapisane wartości (zobacz też \link stronaZapisOpcji \endlink )są odczytywane w funkcji \link RSim::readPedestrianSettings() RSim::readPedestrianSettings() \endlink.

    Ustawienie Layotów:
    Głównym Layoutem jest _mainLayout. Jest on ustawiony w _pedestrianGroupBox.
    Na _mainLayouta nałożony jest _rightGridLayout, na którym umieszczane są widgety.
*/
class IntensityPedestrian : public QWidget
{
    Q_OBJECT
public:
    explicit IntensityPedestrian(QWidget *parent = 0);
    int getNumBranchesFromSettings();
    void numBranchesChanged(QString name = "RoundaboutSimulator");
    int readSettings(QString name = "RoundaboutSimulator");

signals:
    void newIntensityPedestrian(); ///< Sygnał informujący o zmianie natężenia pieszych na którejś z gałęzi. Odbierany w konstruktorze klasy RSim::RSim(QWidget *parent);*/

public slots:
    void intensityIndexChanged();

private:
    QGroupBox *_pedestrianGroupBox;  ///< Tworzy grupę "Piesi". Ma ustawiony jako layout _mainLayout. Logicznie w nim umieszczone są widgety: etykiety i QComboBoxy. */
    QVBoxLayout *_mainLayout; ///< Główny layout umieszczony na _pedestrainGroupBox. Na niego nałożony jest _rightGridLayout */
    QGridLayout *_rightGridLayout; ///< Layout w postaci siatki umiesczony na _mainLayout. Na _rightGridLayout bezpośrednio umieszczane są widgety. */
    QLabel *_numerNaglowekLabel; ///< Etykieta: "Nr gałęzi". Nagłówek kolejnych numerów gałęzi */
    QLabel *_natezenieNaglowekLabel; ///< Etykieta: "Natężenie". Nagłówek do ComboBoxów wyrażających natężenie pieszych na pasach */
    QList<QLabel*> _numerGaleziLabelList; ///< Lista etykiet numerów gałęzi (na których są pasy) */
    QList<QComboBox*> _intensityComboBoxList; /**< Lista ComboBoxów, które umożliwiają zmianę wartości natężenia pieszych na pasach. Możliwe wartości to: wcale, rzadko, średnio, często, strajk.
                                                Wartości te (kolejne Itemy) dodawane są w funkcji createDynamicWidgets(). Przełożenie wartości słownych na liczbowe następuje w funkcji \link RSim::readPedestrianSettings RSim::readPedestrianSettings \endlink */
    void createDynamicWidgets(QString name = "RoundaboutSimulator");
    void deleteDynamicWidgets();
    void saveSettings();
};

#endif // INTENSITYPEDESTRIAN_H
